#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <math.h>
#include <stdio.h>
#include <sys/time.h>
#include<condition_variable>
#include <mutex>

using namespace std;



class CMySpi;

class CMyApi
{
public:
	CMyApi();
	virtual ~CMyApi();

	void Init();
	void Destroy();

	void RequestLogin();
	void RequestAuth();
	void ReqQryDepMD(char *list[], int &count);

	void UserInfoRegister();//多对多中继报送函数
	void UserInfoSubmit();//一对多中继报送函数





public:
	CThostFtdcTraderApi * m_pApi;
	CMySpi* m_pSpi;

	//基础api参数输入
	char* m_pszFrontAddr;
	std::string tmp_pszFrontAddr;

	char* m_pszUserId;
	std::string tmp_pszUserId;

	char* m_pszPasswd;
	std::string tmp_pszPasswd;

	char* m_pszBrokerId;
	std::string tmp_pszBrokerId;

	char* m_pszProInfo;
	std::string tmp_pszProInfo;

	char* m_pszAppID;
	std::string tmp_pszAppID;

	char* m_pszAuthCode;
	std::string tmp_pszAuthCode;

	char* m_pszRemark;
	std::string tmp_pszRemark;

	char* m_pszPublicIP;
	std::string tmp_pszPublicIP;

	char* m_pszLoginTime;
	std::string tmp_pszLoginTime;

	char* m_pszSubAppID;
	std::string tmp_pszSubAppID;

	int m_pszSubPort;
	std::string tmp_pszSubPort;

	//函数返回值接收变量
	int m_iRequestId;

	//配置文件路径变量
	const char* CfgFilePath;

	//报送模式控制变量
	int sysinfo_type;
	std::string tmp_pszsysinfo_type;

	//时间统计变量
	struct  timeval starttime;

	//事件控制
	condition_variable cond;
	mutex mu;
	bool serverrt;

	//存储行情列表相关变量
	char *instrumentlist[15000];
	int instrcount;


};